嘿,各位鐵人賽的夥伴們!歡迎來到今天的主題,我們將探討一個相當有趣且很有深度的主題 - ERP 系統的客製化管理。
你有沒有想過,如果 ERP 系統像瑞士刀一樣,能夠隨客戶的需求彈性調整,我們只需要教客戶一次如何使用就行,如果是這樣就太夢幻了。
首先,讓我們來解釋一下「客製化」是什麼意思。ERP 系統就像是一件衣服,你可以依照你的偏好和需求來做衣服的調整,就像是高中時大家都會把褲管改窄一樣。(還是只有我會?QAQ)
相對地,「原廠設定」就像是你買回家的標準衣服,可能不完全合身,需要經過調整才會比較舒服或好看。
了解你的需求是客製化的第一步。
通常我們需要和使用系統的客戶們直接聊天,了解他們的痛點和為何想要改善這些流程,更重要的是開發者一定要清楚知道你的使用者的原始操作流程。
舉例來說,假如你的客戶想要依照訂單的地區來選擇貨運商,因為他們每次都要手動填入這些必要的資訊,很煩又很累。
根據上面的需求,程式要怎麼寫?直覺來說可能會這樣寫:
// 如果目的地在美國,就使用 Fedex 來送貨
// 如果是英國就使用 DHL 送貨
// 否則使用 UPS 來送
if( shipToCountry.Equals("US") )
shipVia = "Fedex";
else if ( shipToCountry.Equals("GB") )
shipVia = "DHL";
else
shipVia = "UPS";
最簡單的 if-else if-else
就解決,輕鬆自在,但是如果今天公司的貨運商合約改了,抑或是找到更便宜的合作貨運商,要改程式,該怎麼辦?
想得更長遠一些,我會寫一個客製化的新畫面,搭配這個資料庫 table 來存這個設計,可能會像是這樣:
CompanyID | ShipToCountry | ShipVia | Description |
---|---|---|---|
1 | US | Fedex | If the country is US, using Fedex |
1 | GB | DHL | If the country is GB, using DHL |
1 | Default | UPS | Default carrier |
在程式中就可以直接利用填入的規則來寫入相對應的貨運商,記得不要忘記 CompanyID,不然會讓全部的子公司都走同一個規則,通常這是不可能發生的事情。
如果今天客戶要改需求,我就可以直接在 ERP 系統上利用這個新畫面,馬上修改程式執行的規則,如果要更絕一點,我可以寫一份文件教客戶如何使用這個系統,就沒我的事情了。
當然,最大的好處是,我就可以達到 zero downtime 更新,不用再讓整個 ERP 系統進入維護時間,發布新程式了。
(通常 ERP 系統的客製化程式都需要一段時間來發布新版本的程式)
客製化有很多好處,但應該要避免過度客製化。
過多的客製化可能讓你的 ERP 系統變得複雜,難以管理。如果原廠的功能可以辦到的事情,就說服客戶照著原廠的系統工作流程走就好。
有什麼好處呢?如果原廠釋出了新版本的 ERP,你的客製化程式有可能因為改版而壞掉,這時你的工作就會很多,會哭哭啦。
今天沒有任何的 Reference,只有我的大腦。